package com.shujia.day06;


class Demo06Util {
    public static void main(String[] args) {
//        new Util();   // 构造方法私有
        Util util1 = Util.getObject("参数1");
        Util util2 = Util.getObject("参数2");

        /*
            com.shujia.day06.Util@4554617c
            com.shujia.day06.Util@4554617c
            表示同一个对象
            该写法可以保证其他程序员在使用该代码时，只能在全局创建唯一一个对象
         */
        System.out.println(util2);
        System.out.println(util1);
    }
}
class Util {
    String parameter;
    static Util utilObject;  // 所有对象所共有，可以被对象或类进行访问
    // 构造方法私有
    private Util(String parameter) {

    }
    // 对于一些工具类，可以提供静态方法 直接通过类名.方法进行调用 =>

    static {
        createObject("初始化参数");
    }

    private static void createObject(String parameter){
        utilObject = new Util(parameter);
    }

    public static Util getObject(String parameter){
        utilObject.parameter = parameter;
        return utilObject;
    }

}
